package SecondeStage.MianXiangDuiXiang.AbstractClass.DanLiSheJi;

public class SingleTon01 {
    public static void main(String[] args) {
        GirlFriend instance1 = GirlFriend.getInstance();
        // 即便获取两次，获取的也是同一个gf对象
        GirlFriend instance2 = GirlFriend.getInstance();
        System.out.println(instance1 == instance2);
    }
}

// 有一个类，GirlFriend
// 只能有一个女朋友
class GirlFriend{
    private String name;
    // 为了在getInstance静态方法中返回gf,gf必须用static修饰
    private static GirlFriend gf =new GirlFriend("小红");
    // 如何保障我们只能创建一个 GirlFriend 对象
    // 单例模式-饿汉式: 在类加载的时候就创建了对象（使用之前）
    // 1. 将构造器私有化
    // 2. 在类的内部直接创建对象（该对象是static静态的）
    // 3. 提供一个公共的static方法，返回gf对象
    private GirlFriend(String name) {
        this.name = name;
    }

    public static  GirlFriend getInstance(){
        return gf;
    }
}